using System.Collections.Generic;
using System.Collections.ObjectModel;
using Entities;

namespace DataAccess
{
    /// <summary>
    /// interface contact
    /// </summary>
    internal interface IContactDataAccess
    {
        /// <summary>
        /// Inserts the specified contact.
        /// </summary>
        /// <param name="contact">The contact.</param>
        /// <returns></returns>
        int Insert(Contact contact);
        /// <summary>
        /// Updates the specified contact.
        /// </summary>
        /// <param name="contact">The contact.</param>
        /// <returns></returns>
        int Update(Contact contact);
        /// <summary>
        /// Deletes the specified contact id.
        /// </summary>
        /// <param name="contactId">The contact id.</param>
        /// <returns></returns>
        int Delete(string contactId);
        /// <summary>
        /// Gets the contact.
        /// </summary>
        /// <param name="contactId">The contact id.</param>
        /// <returns></returns>
        Contact GetContact(string contactId);
        /// <summary>
        /// Lists the contact.
        /// </summary>
        /// <param name="firstName">The first name.</param>
        /// <param name="surName">Name of the sur.</param>
        /// <param name="isActive">if set to <c>true</c> [is active].</param>
        /// <returns></returns>
        Collection<Contact> ListContact(string firstName, string surName,bool isActive);

    }
}